<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta content="App Inventor for Android" name="description">
    <meta content="Android, Blocks App Inventor, Mobile, Phone, IDE" name="keywords">
    <title>
      Other Components - App Inventor for Android
    </title>
    <link href="../../../static/images/appinventor-16.png" rel="SHORTCUT ICON" type="image/ico">
    <link href="../../../static/images/appinventor-16.png" rel="icon" type="image/png">
    <link href="../../../static/css/appinventor.css" rel="stylesheet" type="text/css">
<!-- ADD Google Analytics here -->
<!-- END Google Analytics here -->
    <style type="text/css">
img.c5 {border-width:0}
    li.c4 {list-style: none; display: inline}
    li.c3 {list-style: none}
    code.c2 {font-style: italic}
    div.c1 {clear:both;}
    </style>
  </head>
  <body>
    <div id="aiac">
      <div class="main-container">
        <div class="header">
          <div class="header-title">
            <a href="../../../about/index.html"><img alt="" src="../../../static/images/appinventor_logo.gif"></a>
          </div>
            <div class="header-search">
<!-- ADD Google Custom Search -->
<!-- END Google Custom Search -->
              <div class="header-search-query">
              </div>
              <div class="header-search-button">
              </div>
            </div>
          <div class="header-login">
            <div class="header-login-greeting">
              Learn about App Inventor
            </div>
          </div>
        </div>
        <div class="customhr customhr-green"></div>
<!-- ADD Google Search Results -->
<!-- END Google Search Results -->
        <div id="navigation">
          <div id="navigation-links">
            <div class="navigation-link-option" id="navigation-link-home">
              <a href="../../../about/index.html">About</a>
            </div>
            <div class="navigation-link-option navigation-link-active" id="navigation-link-learn">
              <a href="../../../learn/index.html">Learn</a>
            </div>
            <div class="navigation-link-option" id="navigation-link-forum">
              <a href="../../../forum/index.html">Forum</a>
            </div>
            <div class="navigation-link-option" id="navigation-link-myappinventor">
              <a href="">My Projects</a><div>(coming soon)</div>
            </div>
          </div>
          <div id="navigation-breadcrumb">
            <a href="../../../learn/index.html">Learn</a> &gt; <a href="../../../learn/reference/index.html">Reference</a> &gt; Other &gt;
          </div>
          <div class="c1"></div>
        </div>
        <div class="customhr customhr-gray"></div>
        <div class="content">
          <div class="content-body">
            <div class="learn-page">
              <h1>
                Other Components
              </h1>
              <ul>
                <li>
                  <a href="#ActivityStarter">ActivityStarter</a>
                </li>
                <li>
                  <a href="#BarcodeScanner">BarcodeScanner</a>
                </li>
                <li>
                  <a href="#BluetoothClient">BluetoothClient</a>
                </li>
                <li>
                  <a href="#BluetoothServer">BluetoothServer</a>
                </li>
                <li>
                  <a href="#Notifier">Notifier</a>
                </li>
                <li>
                  <a href="#SpeechRecognizer">SpeechRecognizer</a>
                </li>
                <li>
                  <a href="#TextToSpeech">TextToSpeech</a>
                </li>
                <li>
                  <a href="#TinyWebDB">TinyWebDB</a>
                </li>
                <li>
                  <a href="#Web">Web</a>
                </li>
              </ul>
              <h2 id="ActivityStarter">
                ActivityStarter
              </h2><img alt="Picture of Activity Starter component" src="images/activitystarter.png">
              <p>
                A component that can launch another activity from your application.
              </p>
              <p>
                You communicate with the activity starter by setting properties of the component to pass information related to the activity, including the action and activity class. See <a href="../../../learn/reference/other/activitystarter.html">Using the Activity Starter Component</a> for details and examples.
              </p>
              <p>
                Activities that can be launched include:
              </p>
              <ul>
                <li>Starting another App Inventor for Android app. To do so, first determine <em>class</em> of the other application by downloading the source code and using a file explorer or unzip utility to find a file named "youngandroidproject/project.properties". The first line of the file will start with "main=" and be followed by the class name; for example,
                  <p>
                    <code>main=com.gmail.Bitdiddle.Ben.HelloPurr.Screen1</code>
                  </p>
                  <p>
                    To make your <code>ActivityStarter</code> launch this application, set the following properties:
                  </p>
                  <ul>
                    <li>
                      <code>ActivityPackage</code> to the class name, dropping the last component (for example, <code>com.gmail.Bitdiddle.Ben.HelloPurr</code>)
                    </li>
                    <li>
                      <code>ActivityClass</code> to the entire class name (for example, <code>com.gmail.Bitdiddle.Ben.HelloPurr.Screen1</code>)
                    </li>
                  </ul>
                </li>
                <li>Starting an activity that is built in to the Android OS, such as using the camera, or performing a web search. You can start camera by setting the following properties:
                  <ul>
                    <li>
                      <code>Action: android.intent.action.MAIN</code>
                    </li>
                    <li>
                      <code>ActivityPackage: com.android.camera</code>
                    </li>
                    <li>
                      <code>ActivityClass: com.android.camera.Camera</code>
                    </li>
                  </ul>
                </li>
                <li>Performing web search: Assuming the term you want to search for is "vampire" (feel free to substitute your own choice), set the properties to:
                  <ul>
                    <li>
                      <code>Action: android.intent.action.WEB_SEARCH</code>
                    </li>
                    <li>
                      <code>ExtraKey: query</code>
                    </li>
                    <li>
                      <code>ExtraValue: vampire</code>
                    </li>
                    <li>
                      <code>ActivityPackage: com.google.android.providers.enhancedgooglesearch</code>
                    </li>
                    <li>
                      <code>ActivityClass: com.google.android.providers.enhancedgooglesearch.Launcher</code>
                    </li>
                  </ul>
                </li>
                <li>Opening a browser to a specified web page. Assuming the page you want to go to is "www.facebook.com" (feel free to substitute your own choice), set the properties to:
                  <ul>
                    <li>
                      <code>Action: android.intent.action.VIEW</code>
                    </li>
                    <li>
                      <code>DataUri: http://www.facebook.com</code>
                    </li>
                  </ul>
                </li>
              </ul>
              <p>
                You can also launch third-party applications installed on the phone, provided you know the appropriate <em>intents</em> to invoke them, and you can also launch activities that produce text results and get them back to use in your application. The way this data is extracted depends on how the application has been implemented.
              </p>
              <h3>
                Properties
              </h3>
              <dl>
                <dt>
                  <code>Action</code>: text
                </dt>
                <dd>
                  Action of the activity to be launched.
                </dd>
                <dt>
                  <code>ActivityClass</code>: text
                </dt>
                <dd>
                  Class name of the activity to be launched.
                </dd>
                <dt>
                  <code>ActivityPackage</code>: text
                </dt>
                <dd>
                  Package name of the activity to be launched.
                </dd>
                <dt>
                  <code>DataUri</code>: text
                </dt>
                <dd>
                  URI passed to activity to be launched.
                </dd>
                <dt>
                  <code>ExtraKey</code>: text
                </dt>
                <dd>
                  Key name of text passed to the activity.
                </dd>
                <dt>
                  <code>ExtraValue</code>: text
                </dt>
                <dd>
                  Value of text passed to the activity.
                </dd>
                <dt>
                  <code class="c2">Result</code>: text
                </dt>
                <dd>
                  Value returned by the activity being started.
                </dd>
                <dt>
                  <code>ResultName</code>: text
                </dt>
                <dd>
                  The name used to extract the result returned from the activity being started.
                </dd>
                <dt>
                  <code class="c2">ResultType</code>: text
                </dt>
                <dd>
                  Type information returned from the activity being started.
                </dd>
                <dt>
                  <code class="c2">ResultUri</code>: text
                </dt>
                <dd>
                  URI (or Data) information returned from the activity being started.
                </dd>
              </dl>
              <h3>
                Events
              </h3>
              <dl>
                <dt>
                  <code>ActivityError(text message)</code>&gt;
                </dt>
                <dd>
                  Indicates that an error occurred while using this ActivityStarter.
                </dd>
                <dt>
                  <code>AfterActivity(text result)</code>
                </dt>
                <dd>
                  Called after activity ends.
                </dd>
              </dl>
              <h3>
                Methods
              </h3>
              <dl>
                <dt>
                  text <code>ResolveActivity</code>()
                </dt>
                <dd>
                  Returns the name of the activity that corresponds to this ActivityStarter, or an empty string if no corresponding activity can be found. You can use this before starting an external application to ensure that the application is installed on the phone.
                </dd>
                <dt>
                  <code>StartActivity()</code>
                </dt>
                <dd>
                  Start the activity associated with this component.
                </dd>
              </dl>
              <h2 id="BarcodeScanner">
                BarcodeScanner
              </h2><img alt="Picture of Barcode Scanner component" src="images/barcodescanner.png">
              <p>
                This non-visible component uses the phone's camera to read a 1-dimensional barcode or 2-dimensional barcode (QR code). In order for this component to work, the Barcode scanner app from ZXing must be installed on the phone. This app is available for free in the Android Market.
              </p>
              <h3>
                Properties
              </h3>
              <dl>
                <dt>
                  <code class="c2">Result</code>
                </dt>
                <dd>
                  The text result of the last successful scan. This becomes available after <code>AfterScan</code> has been signaled. This value is also returned as the <code>result</code> value.
                </dd>
              </dl>
              <h3>
                Methods
              </h3>
              <dl>
                <dt>
                  <code>DoScan()</code>
                </dt>
                <dd>
                  Start a scan
                </dd>
              </dl>
              <h3>
                Events
              </h3>
              <dl>
                <dt>
                  <code>AfterScan(text result)</code>
                </dt>
                <dd>
                  Called after scanning ends.
                </dd>
              </dl>
              <h2 id="BluetoothClient">
                BluetoothClient
              </h2><img alt="Picture of Bluetooth Client component" src="images/bluetoothclient.png">
              <p>
                Bluetooth client component
              </p>
              <h3>
                Properties
              </h3>
              <dl>
                <dt>
                  <code><em>AddressesAndNames</em></code>
                </dt>
                <dd>
                  A list of the addresses and names of paired Bluetooth devices.
                </dd>
                <dt>
                  <code><em>Available</em></code>
                </dt>
                <dd>
                  Tell whether Bluetooth is available on the Android device.
                </dd>
                <dt>
                  <code>CharacterEncoding</code>
                </dt>
                <dd>
                  The character encoding to use when sending and receiving text.
                </dd>
                <dt>
                  <code>DelimiterByte</code>
                </dt>
                <dd>
                  The delimiter byte to use when passing a negative number for the numberOfBytes parameter when calling ReceiveText, ReceiveSignedBytes, or ReceiveUnsignedBytes.
                </dd>
                <dt>
                  <code><em>Enabled</em></code>
                </dt>
                <dd>
                  Tell whether Bluetooth is enabled.
                </dd>
                <dt>
                  <code>HighByteFirst</code>
                </dt>
                <dd>
                  Whether 2 and 4 byte numbers should be sent and received with the high (or most significant) byte first. Check the documentation for the device with which your app will be communicating for the appropriate setting. This is also known as big-endian.
                </dd>
                <dt>
                  <code><em>IsConnected</em></code>
                </dt>
                <dd>
                  Tell whether a Bluetooth connection has been made.
                </dd>
              </dl>
              <h3>
                Events
              </h3>none
              <h3>
                Methods
              </h3>
              <dl>
                <dt>
                  <code>number BytesAvailableToReceive()</code>
                </dt>
                <dd>
                  Returns an estimate of the number of bytes that can be received without blocking
                </dd>
                <dt>
                  <code>boolean Connect(text address)</code>
                </dt>
                <dd>
                  Connect to the Bluetooth device with the specified address and the Serial Port Profile (SPP). Returns true if the connection was successful. The address parameter can contain extra characters after the MAC address if there is a space immediately after the MAC address. This means that you may pass an item from the list returned from the AddressesAndNames property without splitting apart the address and the name.
                </dd>
                <dt>
                  <code>boolean ConnectWithUUID(text address, text uuid)</code>
                </dt>
                <dd>
                  Connect to the Bluetooth device with the specified address and UUID. Returns true if the connection was successful. The address parameter can contain extra characters after the MAC address if there is a space immediately after the MAC address. This means that you may pass an item from the list returned from the AddressesAndNames property without splitting apart the address and the name.
                </dd>
                <dt>
                  <code>Disconnect()</code>
                </dt>
                <dd>
                  Disconnect from the connected Bluetooth device.
                </dd>
                <dt>
                  <code>boolean IsDevicePaired(text address)</code>
                </dt>
                <dd>
                  Checks whether the Bluetooth device with the specified address is paired.
                </dd>
                <dt>
                  <code>number ReceiveSigned1ByteNumber()</code>
                </dt>
                <dd>
                  Receive a signed 1-byte number from the connected Bluetooth device.
                </dd>
                <dt>
                  <code>number ReceiveSigned2ByteNumber()</code>
                </dt>
                <dd>
                  Receive a signed 2-byte number from the connected Bluetooth device.
                </dd>
                <dt>
                  <code>number ReceiveSigned4ByteNumber()</code>
                </dt>
                <dd>
                  Receive a signed 4-byte number from the connected Bluetooth device.
                </dd>
                <dt>
                  <code>list ReceiveSignedBytes(number numberOfBytes)</code>
                </dt>
                <dd>
                  Receive multiple signed byte values from the connected Bluetooth device. If numberOfBytes is less than 0, read until a delimiter byte value is received.
                </dd>
                <dt>
                  <code>text ReceiveText(number numberOfBytes)</code>
                </dt>
                <dd>
                  Receive text from the connected Bluetooth device. If numberOfBytes is less than 0, read until a delimiter byte value is received.
                </dd>
                <dt>
                  <code>number ReceiveUnsigned1ByteNumber()</code>
                </dt>
                <dd>
                  Receive an unsigned 1-byte number from the connected Bluetooth device.
                </dd>
                <dt>
                  <code>number ReceiveUnsigned2ByteNumber()</code>
                </dt>
                <dd>
                  Receive a unsigned 2-byte number from the connected Bluetooth device.
                </dd>
                <dt>
                  <code>number ReceiveUnsigned4ByteNumber()</code>
                </dt>
                <dd>
                  Receive a unsigned 4-byte number from the connected Bluetooth device.
                </dd>
                <dt>
                  <code>list ReceiveUnsignedBytes(number numberOfBytes)</code>
                </dt>
                <dd>
                  Receive multiple unsigned byte values from the connected Bluetooth device. If numberOfBytes is less than 0, read until a delimiter byte value is received.
                </dd>
                <dt>
                  <code>Send1ByteNumber(text number)</code>
                </dt>
                <dd>
                  Send a 1-byte number to the connected Bluetooth device.
                </dd>
                <dt>
                  <code>Send2ByteNumber(text number)</code>
                </dt>
                <dd>
                  Send a 2-byte number to the connected Bluetooth device.
                </dd>
                <dt>
                  <code>Send4ByteNumber(text number)</code>
                </dt>
                <dd>
                  Send a 4-byte number to the connected Bluetooth device.
                </dd>
                <dt>
                  <code>SendBytes(list list)</code>
                </dt>
                <dd>
                  Send a list of byte values to the connected Bluetooth device.
                </dd>
                <dt>
                  <code>SendText(text text)</code>
                </dt>
                <dd>
                  Send text to the connected Bluetooth device.
                </dd>
              </dl>
              <h2 id="BluetoothServer">
                BluetoothServer
              </h2><img alt="Picture of Bluetooth Server component" src="images/bluetoothserver.png">
              <p>
                Bluetooth server component
              </p>
              <h3>
                Properties
              </h3>
              <dl>
                <dt>
                  <code>Available: boolean</code>
                </dt>
                <dd>
                  Tell whether Bluetooth is available on the Android device.
                </dd>
                <dt>
                  <code>CharacterEncoding: text</code>
                </dt>
                <dd>
                  The character encoding to use when sending and receiving text.
                </dd>
                <dt>
                  <code>DelimiterByte: number</code>
                </dt>
                <dd>
                  The delimiter byte to use when passing a negative number for the numberOfBytes parameter when calling ReceiveText, ReceiveSignedBytes, or ReceiveUnsignedBytes.
                </dd>
                <dt>
                  <code>Enabled: boolean</code>
                </dt>
                <dd>
                  Tell whether Bluetooth is enabled.
                </dd>
                <dt>
                  <code>HighByteFirst: boolean</code>
                </dt>
                <dd>
                  Whether 2 and 4 byte numbers should be sent and received with the high (or most significant) byte first. Check the documentation for the device with which your app will be communicating for the appropriate setting. This is also known as big-endian.
                </dd>
                <dt>
                  <code>IsAccepting: boolean</code>
                </dt>
                <dd>
                  Tell whether this BluetoothServer component is accepting an incoming connection.
                </dd>
                <dt>
                  <code>IsConnected: boolean</code>
                </dt>
                <dd>
                  Tell whether a Bluetooth connection has been made.
                </dd>
              </dl>
              <h3>
                Events
              </h3>
              <dl>
                <dt>
                  <code>ConnectionAccepted()</code>
                </dt>
                <dd>
                  Indicates that a bluetooth connection has been accepted.
                </dd>
              </dl>
              <h3>
                Methods
              </h3>
              <dl>
                <dt>
                  <code>AcceptConnection(text serviceName)</code>
                </dt>
                <dd>
                  Accept an incoming connection with the Serial Port Profile (SPP).
                </dd>
                <dt>
                  <code>AcceptConnectionWithUUID(text serviceName, text uuid)</code>
                </dt>
                <dd>
                  Accept an incoming connection with a specific UUID.
                </dd>
                <dt>
                  <code>number BytesAvailableToReceive()</code>
                </dt>
                <dd>
                  Returns an estimate of the number of bytes that can be received without blocking
                </dd>
                <dt>
                  <code>Disconnect()</code>
                </dt>
                <dd>
                  Disconnect from the connected Bluetooth device.
                </dd>
                <dt>
                  <code>number ReceiveSigned1ByteNumber()</code>
                </dt>
                <dd>
                  Receive a signed 1-byte number from the connected Bluetooth device.
                </dd>
                <dt>
                  <code>number ReceiveSigned2ByteNumber()</code>
                </dt>
                <dd>
                  Receive a signed 2-byte number from the connected Bluetooth device.
                </dd>
                <dt>
                  <code>number ReceiveSigned4ByteNumber()</code>
                </dt>
                <dd>
                  Receive a signed 4-byte number from the connected Bluetooth device.
                </dd>
                <dt>
                  <code>list ReceiveSignedBytes(number numberOfBytes)</code>
                </dt>
                <dd>
                  Receive multiple signed byte values from the connected Bluetooth device. If numberOfBytes is less than 0, read until a delimiter byte value is received.
                </dd>
                <dt>
                  <code>text ReceiveText(number numberOfBytes)</code>
                </dt>
                <dd>
                  Receive text from the connected Bluetooth device. If numberOfBytes is less than 0, read until a delimiter byte value is received.
                </dd>
                <dt>
                  <code>number ReceiveUnsigned1ByteNumber()</code>
                </dt>
                <dd>
                  Receive an unsigned 1-byte number from the connected Bluetooth device.
                </dd>
                <dt>
                  <code>number ReceiveUnsigned2ByteNumber()</code>
                </dt>
                <dd>
                  Receive a unsigned 2-byte number from the connected Bluetooth device.
                </dd>
                <dt>
                  <code>number ReceiveUnsigned4ByteNumber()</code>
                </dt>
                <dd>
                  Receive a unsigned 4-byte number from the connected Bluetooth device.
                </dd>
                <dt>
                  <code>list ReceiveUnsignedBytes(number numberOfBytes)</code>
                </dt>
                <dd>
                  Receive multiple unsigned byte values from the connected Bluetooth device. If numberOfBytes is less than 0, read until a delimiter byte value is received.
                </dd>
                <dt>
                  <code>Send1ByteNumber(text number)</code>
                </dt>
                <dd>
                  Send a 1-byte number to the connected Bluetooth device.
                </dd>
                <dt>
                  <code>Send2ByteNumber(text number)</code>
                </dt>
                <dd>
                  Send a 2-byte number to the connected Bluetooth device.
                </dd>
                <dt>
                  <code>Send4ByteNumber(text number)</code>
                </dt>
                <dd>
                  Send a 4-byte number to the connected Bluetooth device.
                </dd>
                <dt>
                  <code>SendBytes(list list)</code>
                </dt>
                <dd>
                  Send a list of byte values to the connected Bluetooth device.
                </dd>
                <dt>
                  <code>SendText(text text)</code>
                </dt>
                <dd>
                  Send text to the connected Bluetooth device.
                </dd>
                <dt>
                  <code>StopAccepting()</code>
                </dt>
                <dd>
                  Stop accepting an incoming connection.
                </dd>
              </dl>
              <h2 id="Notifier">
                Notifier
              </h2><img alt="Picture of Notifier component" src="images/notifier.png">
              <p>
                A notifier is a non-visible component that can show verious kinds of alerts and can log information. Use a notifier to display notices and alerts to users of your app, and also to log information that can help you debug your app.
              </p>
              <h3>
                Methods
              </h3>
              <dl>
                <dt>
                  <code>ShowMessageDialog(Text message, Text title, Text buttonText)</code>
                </dt>
                <dd>
                  Pops up a notice that remains until the user taps a button with the given text. The arguments are the message to be shown, the title of the notice, and the label on the button.
                </dd>
                <dt>
                  <code>ShowChooseDialog(Text message, Text title, Text button1Text, Text button2Text)</code>
                </dt>
                <dd>
                  Pops up a notice the user must respond to by tapping one of two buttons with the given text. The arguments are the message to be shown, the title of the notice, and the labels on the left and right buttons, respectively. The <code>AfterChoosing</code> event is signalled after the user taps one of the buttons.
                </dd>
                <dt>
                  <code>ShowTextDialog(Text message, Text title)</code>
                </dt>
                <dd>
                  Pops up a notice which the user must respond to by entering some text. The arguments are the message to be shown and the title of the notice. The <code>AfterTextInput</code> event is signalled after the user enters the text.
                </dd>
                <dt>
                  <code>ShowAlert(Text message</code>
                </dt>
                <dd>
                  Pops up a temporary notice, which vanishes after a few seconds. The argument is the text of the notice.
                </dd>
                <dt>
                  <code>LogError(Text message)</code>
                </dt>
                <dt>
                  <code>LogError(Text message)</code>
                </dt>
                <dt>
                  <code>LogError(Text message)</code>
                </dt>
                <dd>
                  These methods are for use in debugging. They write messages to the various logs on the Android device. The logs can be read with the use of Android debugging tools, like the Android Debug Bridge (ADB).
                </dd>
              </dl>
              <h3>
                Events
              </h3>
              <dl>
                <dt>
                  <code>AfterChoosing(Text choice)</code>
                </dt>
                <dd>
                  Signaled after the user has made a choice in response to <code>ShowChooseDialog</code>. The argument is the text on the button that the user tapped.
                </dd>
                <dt>
                  <code>AfterTextInput(Text response)</code>
                </dt>
                <dd>
                  Signaled after the user has responded to <code>ShowTextDialog</code>. The argument is the text on the button that the user entered.
                </dd>
              </dl>
              <h2 id="SpeechRecognizer">
                SpeechRecognizer
              </h2><img alt="Picture of Speech Recognizer component" src="images/speechrecognizer.png">
              <p>
                Use a speech recognizer component to listen to the user speaking and convert the spoken sound into text using Android's speech recognition feature.
              </p>
              <h3>
                Properties
              </h3>
              <dl>
                <dt>
                  <code class="c2">Result</code>
                </dt>
                <dd>
                  The last text produced by the recognizer.
                </dd>
              </dl>
              <h3>
                Methods
              </h3>
              <dl>
                <dt>
                  <code>GetText()</code>
                </dt>
                <dd>
                  Asks the user to speak, and converts the speech to text. Signals the <code>AfterGettingText</code> event when the result is available.
                </dd>
              </dl>
              <h3>
                Events
              </h3>
              <dl>
                <dt>
                  <code>AfterGetting(Text result)</code>
                </dt>
                <dd>
                  Signaled after the recognizer has produced text. The argument is the text result that was produced.
                </dd>
                <dt>
                  <code>BeforeGettingText()</code>
                </dt>
                <dd>
                  Signaled just before the recognizer is called.
                </dd>
              </dl>
              <h2 id="TextToSpeech">
                TextToSpeech
              </h2><img alt="Picture of Text to Speech component" src="images/texttospeech.png">
              <p>
                Use a text-to-speech component to have the device speak text audibly.
              </p>
              <p>
                In order for this component to work, the device must have the <em>TTS Extended Service</em> app by Eyes-Free Project installed. You can download this from <a href="http://code.google.com/p/eyes-free/downloads/list">http://code.google.com/p/eyes-free/downloads/list</a>
              </p>
              <p>
                The text-to-speech component has properties you can set to guide the pronunciation of the text to be spoken. These properties use three-letter codes to specify the language and the country in which the language is spoken. For example, you can specify British English or US English. For British English, the language code is <code>eng</code> and the country code is <code>GBR</code>, while for US English, the language code is <code>eng</code> and the country code is <code>USA</code>. The complete list is below.
              </p>
              <h3>
                Properties
              </h3>
              <dl>
                <dt>
                  <code>Country</code>
                </dt>
                <dd>
                  The country code for speech production.
                </dd>
                <dt>
                  <code>Language</code>
                </dt>
                <dd>
                  The language code for speech production.
                </dd>
                <dt>
                  <code class="c2">Result</code>
                </dt>
                <dd>
                  Details to come.
                </dd>
              </dl>
              <h3>
                Methods
              </h3>
              <dl>
                <dt>
                  <code>Speak(Text message)</code>
                </dt>
                <dd>
                  Speaks the given text.
                </dd>
              </dl>
              <h3>
                Events
              </h3>
              <dl>
                <dt>
                  <code>AfterSpeaking(Text result)</code>
                </dt>
                <dd>
                  Signaled after the text is spoken. The argument is the text result that was produced.
                </dd>
                <dt>
                  <code>BeforeSpeaking()</code>
                </dt>
                <dd>
                  Signaled just before the text is spoken.
                </dd>
              </dl>
              <p>
                Here are the language and country codes you can use. The codes are organized first by language; then, in each language section are a list of possible country codes:
              </p>
              <ul>
                <li>ces (Czech)
                  <ul>
                    <li>CZE
                    </li>
                  </ul>
                </li>
                <li class="c3">
                  <br>
                </li>
                <li>spa (Spanish)
                  <ul>
                    <li>ESP
                    </li>
                    <li>USA
                    </li>
                  </ul>
                </li>
                <li class="c3">
                  <br>
                </li>
                <li>deu (German)
                  <ul>
                    <li>AUT
                    </li>
                    <li>BEL
                    </li>
                    <li>CHE
                    </li>
                    <li>DEU
                    </li>
                    <li>LIE
                    </li>
                    <li>LUX
                    </li>
                  </ul>
                </li>
                <li class="c3">
                  <br>
                </li>
                <li>fra (French)
                </li>
                <li class="c4">
                  <ul>
                    <li>BEL
                    </li>
                    <li>CAN
                    </li>
                    <li>CHE
                    </li>
                    <li>FRA
                    </li>
                    <li>LUX
                    </li>
                  </ul>
                </li>
                <li class="c3">
                  <br>
                </li>
                <li>nld (Dutch)
                  <ul>
                    <li>BEL
                    </li>
                    <li>NLD
                    </li>
                  </ul>
                </li>
                <li class="c3">
                  <br>
                </li>
                <li>ita (Italian)
                </li>
                <li class="c4">
                  <ul>
                    <li>CHE
                    </li>
                    <li>ITA
                    </li>
                  </ul>
                </li>
                <li class="c3">
                  <br>
                </li>
                <li>pol (Polish)
                </li>
                <li class="c4">
                  <ul>
                    <li>POL
                    </li>
                  </ul>
                </li>
                <li class="c3">
                  <br>
                </li>
                <li>eng (English)
                </li>
                <li class="c4">
                  <ul>
                    <li>AUS
                    </li>
                    <li>BEL
                    </li>
                    <li>BWA
                    </li>
                    <li>BLZ
                    </li>
                    <li>CAN
                    </li>
                    <li>GBR
                    </li>
                    <li>HKG
                    </li>
                    <li>IRL
                    </li>
                    <li>IND
                    </li>
                    <li>JAM
                    </li>
                    <li>MHL
                    </li>
                    <li>MLT
                    </li>
                    <li>NAM
                    </li>
                    <li>NZL
                    </li>
                    <li>PHL
                    </li>
                    <li>PAK
                    </li>
                    <li>SGP
                    </li>
                    <li>TTO
                    </li>
                    <li>USA
                    </li>
                    <li>VIR
                    </li>
                    <li>ZAF
                    </li>
                    <li>ZWE
                    </li>
                  </ul>
                </li>
              </ul>
              <h2 id="TinyWebDB">
                TinyWebDB
              </h2><img alt="Picture of Tiny Web Database component" src="images/tinywebdb.png">
              <p>
                Non-visible component that communicates with a Web service to store and retrieve information.
              </p>See <a href="../../../learn/reference/other/tinywebdb.html">Creating a Custom TinyWebDB Service.</a>
              <h3>
                Properties
              </h3>
              <dl>
                <dt>
                  <code>ServiceURL</code>
                </dt>
              </dl>
              <h3>
                Events
              </h3>
              <dl>
                <dt>
                  <code>GotValue(text tagFromWebDB, any valueFromWebDB)</code>
                </dt>
                <dd>
                  Indicates that a GetValue server request has succeeded.
                </dd>
                <dt>
                  <code>ValueStored()</code>
                </dt>
                <dd>
                  Event indicating that a StoreValue server request has succeeded.
                </dd>
                <dt>
                  <code>WebServiceError(text message)</code>
                </dt>
                <dd>
                  Indicates that the communication with the Web service signaled an error
                </dd>
              </dl>
              <h3>
                Methods
              </h3>
              <dl>
                <dt>
                  <code>GetValue(text tag)</code>
                </dt>
                <dd>
                  GetValue asks the Web service to get the value stored under the given tag. It is up to the Web service what to return if there is no value stored under the tag. This component just accepts whatever is returned.
                </dd>
                <dt>
                  <code>StoreValue(text tag, any valueToStore)</code>
                </dt>
                <dd>
                  Asks the Web service to store the given value under the given tag
                </dd>
              </dl>
              <h2 id="Web">
                Web
              </h2>
              <p>
                Non-visible component that provides functions for HTTP GET and POST requests.
              </p>
              <h3>
                Properties
              </h3>
              <dl>
                <dt>
                  <code>AllowCookies</code>
                </dt>
                <dd>
                  Whether the cookies from a response should be saved and used in subsequent requests. Cookies are only supported on Android version 2.3 or greater.
                </dd>
                <dt>
                  <code>RequestHeaders</code>
                </dt>
                <dd>
                  The request headers, as a list of two-element sublists. The first element of each sublist represents the request header field name. The second element of each sublist represents the request header field values, either a single value or a list containing multiple values.
                </dd>
                <dt>
                  <code>ResponseFileName</code>
                </dt>
                <dd>
                  The name of the file where the response should be saved. If SaveResponse is true and ResponseFileName is empty, then a new file name will be generated.
                </dd>
                <dt>
                  <code>SaveResponse</code>
                </dt>
                <dd>
                  Whether the response should be saved in a file.
                </dd>
                <dt>
                  <code>Url</code>
                </dt>
                <dd>
                  The URL for the web request.
                </dd>
              </dl>
              <h3>
                Events
              </h3>
              <dl>
                <dt>
                  <code>GotFile(text url, number responseCode, text responseType, text fileName)</code>
                </dt>
                <dd>
                  Event indicating that a request has finished.
                </dd>
                <dt>
                  <code>GotText(text url, number responseCode, text responseType, text responseContent)</code>
                </dt>
                <dd>
                  Event indicating that a request has finished.
                </dd>
              </dl>
              <h3>
                Methods
              </h3>
              <dl>
                <dt>
                  <code>text BuildPostData(list list)</code>
                </dt>
                <dd>
                  Converts a list of two-element sublists, representing name and value pairs, to a string formatted as application/x-www-form-urlencoded media type, suitable to pass to PostText.
                </dd>
                <dt>
                  <code>ClearCookies()</code>
                </dt>
                <dd>
                  Clears all cookies for this Web component.
                </dd>
                <dt>
                  <code>Get()</code>
                </dt>
                <dd>
                  Performs an HTTP GET request using the Url property and retrieves the response.<br>
                  If the SaveResponse property is true, the response will be saved in a file and the GotFile event will be triggered. The ResponseFileName property can be used to specify the name of the file.<br>
                  If the SaveResponse property is false, the GotText event will be triggered.
                </dd>
                <dt>
                  <code>text HtmlTextDecode(text htmlText)</code>
                </dt>
                <dd>
                  Decodes the given HTML text value. HTML character entities such as &amp;amp;, &amp;lt;, &amp;gt;, &amp;apos;, and &amp;quot; are changed to &amp;, &lt;, &gt;, ', and ". Entities such as &amp;#xhhhh, and &amp;#nnnn are changed to the appropriate characters.
                </dd>
                <dt>
                  <code>text JsonTextDecode(text jsonText)</code>
                </dt>
                <dd>
                  Decodes the given JSON text value. If the given JSON text is surrounded by quotes, the quotes will be removed.
                </dd>
                <dt>
                  <code>PostFile(text path)</code>
                </dt>
                <dd>
                  Performs an HTTP POST request using the Url property and data from the specified file.<br>
                  If the SaveResponse property is true, the response will be saved in a file and the GotFile event will be triggered. The ResponseFileName property can be used to specify the name of the file.<br>
                  If the SaveResponse property is false, the GotText event will be triggered.
                </dd>
                <dt>
                  <code>PostText(text text)</code>
                </dt>
                <dd>
                  Performs an HTTP POST request using the Url property and the specified text.<br>
                  The characters of the text are encoded using UTF-8 encoding.<br>
                  If the SaveResponse property is true, the response will be saved in a file and the GotFile event will be triggered. The responseFileName property can be used to specify the name of the file.<br>
                  If the SaveResponse property is false, the GotText event will be triggered.
                </dd>
                <dt>
                  <code>PostTextWithEncoding(text text, text encoding)</code>
                </dt>
                <dd>
                  Performs an HTTP POST request using the Url property and the specified text.<br>
                  The characters of the text are encoded using the given encoding.<br>
                  If the SaveResponse property is true, the response will be saved in a file and the GotFile event will be triggered. The ResponseFileName property can be used to specify the name of the file.<br>
                  If the SaveResponse property is false, the GotText event will be triggered.
                </dd>
                <dt>
                  <code>text UriEncode(text text)</code>
                </dt>
                <dd>
                  Encodes the given text value so that it can be used in a URL.
                </dd>
              </dl>
            </div>
          </div>
        </div>
        <div class="footer">
          <div class="footer-legal">
            <p>
              <a href="http://creativecommons.org/licenses/by/3.0/" rel="license"><img alt="Creative Commons License" class="c5" src="http://i.creativecommons.org/l/by/3.0/88x31.png"></a><br>
              This work is licensed under a <a href="http://creativecommons.org/licenses/by/3.0/" rel="license">Creative Commons Attribution 3.0 Unported License</a> .
            </p>
            <p>
              The original work by Google has been modified<br>
              <!-- The modified work was translated from English to [language]<br> -->
              <a href="../../../about/index.html">About</a> | <a href="../../../about/privacy.html">Privacy</a> | <a href="../../../about/termsofservice.html">Terms</a>
            </p>
          </div>
          <div class="footer-lastupdate">
            <script type="text/javascript">
if (document.lastModified != '') {
                var m = "Page last updated: " + document.lastModified;
                var p = m.length-8;
                document.writeln("<center>");
                document.write(m.substring(p, 0));
                document.writeln("<\/center>");
              }
            </script>
          </div>
        </div>
      </div>
    </div>
  </body>
</html>
